As computer technology becomes more widely available, it is increasingly the case that a telephone call is made not between two people, but between a person and a machine. In the past, the only way for a person to transact business by telephone was to place a call and speak to another person. Today, however, it is possible for a person to place a call and transact much business by speaking to a machine. An Interactive Voice Menu (IVR) system is one well-known means whereby a user can interact with a machine using a telephone. More recently, voice browsers that facilitate telephonic interaction with rich content such as Voice eXtensible Markup Language (VXML) have been developed. When IVR systems or VXML browsers are employed, the IVR system or VXML browser essentially becomes a party to a telephone conversation.
One issue that arises when a party to a conversation is a machine (e.g., the machine that executes the IVR system or VXML browser) is that the machine may not be aware of the entire array of events that can affect the conversation, or how to respond to those events meaningfully. A case in point is where a user who uses an IVR system or VXML browser places the conversation “on hold” (e.g., by using a “hold” button on the user's telephone, by responding to a call-waiting signal, etc.). If the conversation were taking place between two human beings, the parties would both understand from context that “hold” means they must suspend their conversation and resume when the conversation has been taken off “hold.” However, an IVR system or VXML browser may not be adapted to recognize that the conversation is on hold; nor may such a system be adapted to respond to the “hold” in a meaningful way, such as by suspending the conversation until the hold is released.
In view of the foregoing, there is a need for a technique that overcomes the drawbacks of the prior art.